/*
变量声明
this赋值
函数赋值

全局代码
函数体
eval 

[method1, method2, method3]

谁调用这个方法谁就是this

通过 call 或者 apply 调用函数可以改变 this 指向
f1.call({ x: 22  }) 
f1.apply({ x: 32  })

bind 返回一个新的函数，无论怎么调用this始终是绑定的对象
const f1 = person.active.bind({a: "hello"})
f1()

箭头函数没有this绑定，函数在哪定义this就是谁
*/



const person = {
	x: 10,
	active() {
		console.log(this)
		// function fn() {
		// 	console.log(this) // window
		// }
		const fn = () => {
			console.log(this)
		}
		fn()
	}
}
// person.active()
// const f1 = person.active.bind({a: "hello"})
// f1()
// window.f1()

const f1 = person.active
// f1()
// f1.call({ x: 22  })
// f1.apply({ x: 32  })
// window.f1()


// ele.onclick
// [].slice.call([])


// console.log(this === window)











